iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 25
1

Day 25 正規化表示

在做搜尋條件的時候,有時候想找尋某個檔案,但只記得他的內容關鍵字,這時候正規表示法就非常方便,下關鍵字達到找尋最接近的結果。

grep 全名為 global regular expression print

[root@localhost ~]# grep [參數] [關鍵字] [檔案或目錄] 

參數

-A [行數] (After)顯示符合的那一行,同時顯示該行之後的內容。
-a 以二進位的檔案作為搜尋。
-B [行數] (Before)顯示符合的那一行,同時顯示該行即之前的內容。
-b 顯示符合條件的結果,總共多少 bytes。
-C [行數] (Context)顯示符合的那一行及前後內容。
-c 顯示符合條件的總行數。
-d [動作] 查詢目錄(忽略檔案)。
-E (Extend)使用正則表示式搜尋。
-e [符合條件的內容] 指定搜尋的檔案,通常用在避免partern用-開始。
-F 符合條件的內容作為固定字串的列表。
-f [範本檔案] 指定符合條件的內容,並且將每一行套用樣式。
-G 將樣式視為基本的正規表示法。
-H 在每個符合樣式的行,前面加上符合的檔案名稱或路徑。
-h-H ,但輸出不顯示路徑。
-i (ignore case)不區分大小寫。
-L 不符合條件內容的檔案名稱。
-l 符合條件內容的檔案名稱。
-n (number)顯示符合條件的行數及路徑。
-o 顯示被模式比對到的條件。
-q 不顯示任何結果。
-r 遞迴,讀取每個目錄底下的檔案,同 -d recsuse
-s 不顯示錯誤訊息或無法讀取的訊息。
-V (Version) 顯示 grep 版本資訊。
-v (recursive)顯示不符合條件的結果。
-w 只顯示文字完全符合的結果。
-x 只顯示全列都符合的列
--help 尋求幫助。

正規表示法特殊字符

正規表示法中的特殊符號,與原意思不相同,他們都有各自使用方式。

特殊符號 說明
^ 搜尋規則前的「起頭」。意思代表「非」。
$ 搜尋規則後的「結尾」。
. 任意一個字元。
* 任意字元或任意字串,長度可以為0
.* 一起使用代表任意字串。
\ 跳脫字符,將字串中特殊符號的動作去除。
+ 一個或多個重複字元
? 匹配正則表達式的結束行
(n,m) 連續 n 個 到 m個的字串。
< 從比對正則表達式的行開始。
> 到比對正則表達式的行結束。
[] 比對範圍內的字元或字串。
[^] 比對不再指定範圍內的字元。
[-] 範圍 ;如[A-Z]即A,B,C一直到Z都符合要求

國際模式比對字符

特殊符號 代表意義
[:alnum:] 英文大小寫字元及數字,亦即 0-9, A-Z, a-z
[:alpha:] 任何英文大小寫字元,亦即 A-Z , a-z
[:blank:] 空白鍵與 [Tab] 按鍵兩者
[:cntrl:] 鍵盤上面的控制按鍵,亦即包括 CR, LF, Tab, Del.. 等等
[:digit:] 數字而已,亦即 0-9
[:graph:] 除了空白字元 (空白鍵與 [Tab] 按鍵) 外的其他所有按鍵
[:lower:] 小寫字元,亦即 a-z
[:print:] 任何可以被列印出來的字元
[:punct:] 標點符號 (punctuation symbol),亦即:" ' ? ! ; : # $...
[:upper:] 大寫字元,亦即 A-Z
[:space:] 任何會產生空白的字元,包括空白鍵, [Tab], CR 等等
[:xdigit:] 16 進位的數字類型,因此包括: 0-9, A-F, a-f 的數字與字元

實際操作

多檔案或目錄搜尋

[root@localhost ~]# grep [參數] [關鍵字] [檔案或目錄1] [檔案或目錄2] [檔案或目錄3] ...

搜尋的關鍵字,以顏色特別標註 --color

[root@localhost ~]# grep [參數] [關鍵字] --color [檔案或目錄]

遞迴尋找 root 目錄下的檔案,須符合 美女的字串。

[root@localhost ~]# grep -r "美女" /root/
/root/demo.sh:        echo "美女您好"

上一篇
Day 24 Sell Script(2)
下一篇
Day 26 排程管理
系列文
如何使用 Linux 從土裡到冒出頭來30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言